freeslot("MT_GLASSBUMPER", "MT_GLASSBUMPER_PAST", "MT_GLASSBUMPER_BADFUTURE", "MT_GLASSBUMPER_GOODFUTURE")

//List of Bumpers
local listbumper = {
MT_GLASSBUMPER,
MT_GLASSBUMPER_PAST,
MT_GLASSBUMPER_BADFUTURE,
MT_GLASSBUMPER_GOODFUTURE
}

for k, v in ipairs(listbumper) //Doing Thing :D
	addHook("MobjThinker", function(mo)
		if mo
		and mo.valid
			if mo.health
			local z
				if (mo.eflags & MFE_VERTICALFLIP)
				z = mo.z-mo.height/2
				else
				z = mo.z+mo.height/2
				end
				if mo.homingthing == nil
				mo.homingthing = P_SpawnMobj(mo.x, mo.y, z, MT_LOCKONINF)
				mo.homingthing.flags = MF_SHOOTABLE|MF_NOGRAVITY
				mo.homingthing.flags2 = $1|MF2_INVERTAIMABLE
				mo.homingthing.scale = mo.scale
				mo.homingthing.radius = 8*FRACUNIT
				mo.homingthing.height = 8*FRACUNIT
				elseif mo.homingthing
				and mo.homingthing.valid
				P_SetOrigin(mo.homingthing, mo.x, mo.y, z)
				else
				mo.homingthing = nil
				end
			else
				if mo.homingthing
				and mo.homingthing.valid
				P_RemoveMobj(mo.homingthing)
				mo.homingthing = nil
				end
			end
		end
	end, v)

	addHook("MobjDeath", function(mo, inf, source)
		if mo
		and mo.valid
			if source
			and source.valid
			and source.player
			P_AddPlayerScore(source.player, 10)
			local score = P_SpawnMobjFromMobj(mo, 0, 0, 0, MT_SCORE)
				if score
				and score.valid
				score.state = S_SCRL
				end
			end
		end
	end, v)
end